package com.zlx.rulemk.marketing.beans;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.util.List;
import java.util.Map;

/**
 * @Author: zhanglingxing
 * @CreateTime: 2022-07-07
 * @Description: 用来封装规则的web数据结构，最外层的规则数据结构，对外暴露的数据结构
 * @Version: 1.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class MarketingRule {

    // 规则唯一编码
    private String ruleId;

    // keyby的字段, comma seperated  "province,city"
    private String keyByFields;

    // 触发事件
    private EventCondition triggerEventCondition;

    // 画像属性条件
    private Map<String,String> userProfileConditions;

    /**
     * 行为组合条件
     * 多个组合事件的组合
     * 例如：
     *  【ACD】
     *  【BFG】
     */
    private List<EventCombinationCondition> eventCombinationConditionList;

    // 规则匹配推送次数限制
    private int matchLimit;

    // 是否要注册timer
    private boolean onTimer;

    // 定时条件时间
    private List<TimerCondition> timerConditionList;
}
